package interpreteur;

import interpreteur.echecs.*;
import interpreteur.echecs.Echiquier.Case;
import interpreteur.echecs.PositionFabrique.PositionType;
import static interpreteur.echecs.Pieces.Piece.*;

public class CoupsLegaux extends Regle {

    private boolean pTraitAuxBlancs = true;
    private Iterable<Coups> pListeCoupsLegaux;

    public CoupsLegaux() throws NoSuchFieldException {
        Position position = PositionFabrique.creerPosition(PositionType.INITIALE);
        position.placerPieces();
        new Etat(trait(), position);
        new Regle();
        get(PARCOURIR).eval();
        pListeCoupsLegaux = Etat.pListeCoups;
        System.out.print(this.toString());
    }

    private Couleur trait() {
        return pTraitAuxBlancs == true ? Couleur.BLANC : Couleur.NOIR;
    }

    @Override
    public String toString() {
        super.toString();
        String ret = "";
        for (Coups coups : pListeCoupsLegaux) {
            ret += coups.pPieceDepart.toString() + "(" + Case.valeur(coups.pIndexDepart) + ") :" +
                    Case.valeur(coups.pIndexArrivee) + '\n';

        }
        return ret;
    }
}
